Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Visual C++:Μαύρη Οθόνη κατά την εκτέλεση

Îåêßíçóå áðü ôï ìÝëïò giorger. Τελευταία δημοσίευση από το μέλος giorger στις 01-02-2007, 14:20. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  31-01-2007, 23:28 24358

    Visual C++:Μαύρη Οθόνη κατά την εκτέλεση

    Χαίρετε.
    Κάνω τα πρώτα βήματα στο Visual κομμάτι της C++ και έχω μια απορία. Έχω φτιάξει ένα πρόγραμμα και όταν είτε κάνω compile είτε Run είτε τρέχω το exe αρχείο, εμφανίζεται ημαύρη οθόνη του command prompt (σαν το πρόγραμμα να είναι σε κονσόλα). Όπως είναι ευνόητο θέλω να αφαιρέσω να μην εμφανίζεται to console (μιας και δεν έχει χρησιμότητα) αλλά δεν ξέρω πως. Παραθέτω τον κώδικα του cpp από το οποίο ξεκινά το project.

    #include <iostream>
    #include <stdio.h>
    #include "frmstartup.h"
    #include "frm_login.h"

    using namespace ideal;
    using namespace System::Data;
    using namespace System::IO;
    using namespace System::Text;
    using namespace System::Windows::Forms;


    int main()
    {
      char id;
      int office_id,dummy;
      String ^location;
      FileStream ^fs=gcnew FileStream("idealhouse.dat",FileMode::Open);
      id=(char)fs->ReadByte();
      fs->Close();
      switch (id)
      {
        case '0':
          {
            FILE *fp;
            fp=fopen("idealhouse.dat","r");
            fscanf(fp,"%d\n%d",&dummy,&office_id);
            fclose(fp);
            try{
              SqlConnection ^connection=gcnew SqlConnection("...");
              connection->Open();
              SqlCommand ^command=gcnew SqlCommand();
              command->Connection=connection;
              command->CommandType=CommandType::Text;
              command->CommandText=String::Format("select city from office where id_office = {0}",office_id);
              SqlDataReader ^readdata=command->ExecuteReader();
              if (readdata->Read())
                location=readdata["city"]->ToString();
              connection->Close();
              Application::EnableVisualStyles();
              Application::SetCompatibleTextRenderingDefault(false);  
              Application::Run(gcnew frmstartup(location,office_id));
              break;
            }
            catch (SqlException ^ex)
            {
              MessageBox::Show("Παρουσιάστηκε σφάλμα σύνδεσης","Σφάλμα",MessageBoxButtons::OK,MessageBoxIcon::Error);
            }

          }
        case '1':
          {
            Application::EnableVisualStyles();
            Application::SetCompatibleTextRenderingDefault(false);  
            Application::Run(gcnew frm_login());
            break;
          }
      }
    }


    Nα διευκρινίσω ότι το πρόγραμμα δουλεύει στην αρχή ως εξής:Τσεκάρει ένα περιεχόμενο ενός αρχείου και αναλόγως είτε φορτώνει τη φόρμα του login, είτε προχωρά στην κανονική. Μην με κράξετε για την χρήση της fopen (εκνευρίστηκα μέχρι να καταφέρω να δουλέψω με τον αντίστοιχο αντικειμενοστρεφή τρόπο).
  •  01-02-2007, 09:34 24367 σε απάντηση της 24358

    Απ: Visual C++:Μαύρη Οθόνη κατά την εκτέλεση

    Να υποθέσω ότι έχεις φτιάξει το project σαν CLR console application; Αν ναι, τότε καλώς σου βγάζει την κονσόλα. Για να την χάσεις, πρέπει να το ξαναφτιάξεις σαν Windows Forms Application. Μπορείς να τροποποιήσεις το ίδιο project βέβαια, αλλά χρειάζονται αρκετές αλλαγές και θα δεις πολλά linker errors στο ενδιάμεσο.

    Νατάσα Μανουσοπούλου
  •  01-02-2007, 12:59 24378 σε απάντηση της 24367

    Απ: Visual C++:Μαύρη Οθόνη κατά την εκτέλεση

    Για να είμαι ειλικρινής δεν θυμάμαι αν και το θεωρώ πολύ πιθανό. Αν είναι εύκολο, μπορείς να μου πεις τι αλλαγές πρέπει να κάνω?
  •  01-02-2007, 14:20 24383 σε απάντηση της 24378

    Απ: Visual C++:Μαύρη Οθόνη κατά την εκτέλεση

    Έκανα το project από την αρχή με κάποιες αλλαγές (χωρίς precompiled headers και κάτι άλλα) και δούλεψε. Αν θέλει κάποιος να γράψει τις αλλαγές για μετατροπή από CLR->Form Application, θα ήταν καλοδεχούμενο!
    Ευχαριστώ πάντως!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems